Amazon Elasticsearch ServiceとFoundの比較
AWSが提供するフルマネージドElasticsearchサービス、Amazon Elasticsearch Service(Amazon ES)が本日リリースされました...となると気になるのが、以前Elasticsearch as a Service!Foundを使ってみたという記事で紹介した、Elasticsearchの開発元であるElasticが提供するElasticsearchホステッドサービス、Foundです。
Amazon ESとFoundでは、どのような機能差があるのか?どう使い分けるのか?をまとめてみました。
Amazon ESで出来てFoundで出来ないこと
IAMポリシーでアクセス制御ができる
Amazon ESのアクセス制御はIAMポリシーで行います。
IAMユーザーやIAMロール、または接続元IPアドレスなどで制御可能です。また利用可能なAPIを制限することもできます。AWSに慣れた管理者であれば、すぐに設定することができるでしょう。
CloudWatchでElasticsearchクラスタのモニタリングができる
Amazon ESのElasticsearchクラスタのモニタリングはCloudWatchで行います。
こちらも、AWSを使い慣れた管理者であれば、とても馴染み深いものですね。クラスタノステータスやノード数、ドキュメント数などが一覧で確認できます。
他のAWSサービスと連携できる
Amazon ESは、リリースに合わせてCloudWatch Logsとの連携機能も一緒に追加されました。
CloudWatch Logs以外にも、今後その他AWSサービスとの連携機能が増える...かも?しれません。例えばDynamoDBやRedshiftと連携できたら、と思うと夢が広がりますね!
Foundで出来てAmazon ESで出来ないこと
様々なDashboardに対応している
FoundでElasticsearchクラスタを作ると、最初から以下のようなダッシュボードが用意されています。
個人的にはHeadはやっぱり好きなので、使えるのは嬉しいです。
Amazon ESではプラグインの追加はできませんので、プラグイン型のダッシュボードは使うことができず、最初から用意されているKibanaだけが使えます。
Dynamic Scriptが使える
FoundではDynamic Scriptが使えます。
Dynamic Scriptは、Elasticsearchへのリクエストとしてスクリプトを使うことが出来る機能です。Amazon ESではDynamic Scriptは使えません。
ユーザー辞書が使える
FoundのPremiumではBundleを使ってユーザー辞書のアップロードができます。が、Amazon ESでは今の所、ユーザー辞書をアップロードする仕組みはありません。とはいえ、ユーザー辞書を使うシチュエーションは多いので、すぐ対応されると思います(期待してます)
Elasticsearchのアップグレードができる
FoundではElasticsearchのバージョンが指定でき、アップグレードも可能です。
Amazon ESでは現時点ではバージョン指定ができず、アップグレードもできません。将来的に機能追加される可能性はありますが、現時点では、新しい機能を使うのであれば、Foundのほうが良いです。
Shieldでアクセス制御ができる
FoundのPremiumでは有償プラグインが提供されますので、Shieldでアクセス制御ができます。
Shieldについては以下のブログをご参照ください。
これまでもShieldでアクセス制御を行っていたのであれば、設定は容易でしょう。また個別にIAMにユーザーやロールを追加することなく、Found上だけでユーザー管理、アクセス制御ができます。Shieldはアクセス制御だけでなく監査証跡などもできますので、幅広いセキュリティ設定が可能です。
MarvelでElasticsearchクラスタのモニタリングができる
Shieldと同様、FoundのPremiumではMarvelでElasticsearchクラスタのモニタリングができます。
CloudWatchはでモニタリング出来るのは簡易的なものとなります。Marvelでは、Elasticsearchクラスタの詳細まで確認できます。これまでもMarvelでモニタリングをしていたのであれば、同じインターフェースで同じ運用ができます。
Watcherでアラート検知ができる
FoundのPremiumではWatcherでアラート検知ができます。
Shieldについては以下のブログをご参照ください。
Amazon ESでは、Watcherのように「データを特定のキーワードでひっかけて定義したアクションを実行する」ようなことはできません。
Elasticsearchのサポートがある
意外とこれが一番重要かも知れないと思いましたが、FoundのPremiumではポータルサイトによるElasticsearchのサポートが受けられます。Amazon ESでももちろんAWSからのサポートは受けられますが、Elasticsearchの開発元のサポートが受けられるというのは、エンタープライズな用途では重要です。
まとめ
Amazon ESは、AWS管理コンソールから使えること、IAMやCloudWatchといったAWSの機能と密に連携していることから、AWS利用者にとってはとても敷居が低く使えると思います。逆にElasticsearchに慣れ親しんだユーザー、Elasticsearchの商用プラグインを活用しているユーザーにとっては、物足りない部分があるのでは無いでしょうか。
FoundはElasticが提供しているだけに、Elasticsearchの機能をほぼフルに使えるサービスです。Elasticsearchのパワーユーザー、Elasticsearchの商用プラグインを活用しているユーザーにとっては、自分で構築するよりも早く、簡単に、Elasticsearchクラスタが構築できる、素晴らしいサービスだと思います。
以上から、「AWSユーザーがElasticsearchを使いたい」場合にはAmazon ESが、「ElasticsearchパワーユーザーがマネージドなElasticsearchサービスを利用したい」のであればFoundが、マッチするのでは無いでしょうか。